home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / demos / coppergelly / barlen_cols.s < prev    next >
Text File  |  1980-01-03  |  9KB  |  415 lines

  1.         section    framework,code_c
  2.  
  3. *-------------- Colour Copperbar test...
  4.  
  5. barlen        equ    9
  6.  
  7. Kill_OS:    move.l    (AbsExecBase).w,a6    ; get execbase
  8.         lea    Gfxlib(pc),a1        ; point to graphics.library
  9.         jsr    OldOpenLibrary(a6)    ; open graphics library
  10.         move.l     d0,Gfxbase        ; save gfxbase address
  11.         jsr    Forbid(a6)        ; () turn off multitasking
  12.         lea    (_Custom).l,a5        ; custom base address in a5
  13.         move.w    dmaconr(a5),dmasav    ; save dma
  14.         move.w    intenar(a5),intsav    ; save intena
  15.         move.w    adkconr(a5),adksav    ; save adkcon
  16.         move.w    #$7fff,intena(a5)    ; turn off intena
  17.         move.l  #Copperlist,cop1lch(a5)    ; install custom copperlist
  18.         clr.w    copjmp1(a5)        ; clear second copperlist
  19.         move.w    #$c020,intena(a5)    ; return INTENA:
  20.         move.w  #$87c0,dmacon(a5)    ; return DMA:Cop/Blit/Sprite
  21.         move.l    #screen+0,d0        ; get screen ptr in d0 
  22.         move.w    d0,pl1l            ; find bpl1ptl (low word) 
  23.         swap    d0            ; swap to get high word
  24.         move.w    d0,pl1h            ; find bpl1pth (high word)
  25.  
  26. wait:        cmpi.b    #255,$dff006
  27.         bne.s    wait
  28.         bsr    changecop
  29.         btst    #left,(_ciaa).l        ; left mouse wait
  30.         bne.s    wait            ; loop until pressed
  31.  
  32. Help_OS:    lea    (_Custom).l,a5        ; custom base address in a5
  33.         move.l    GFXbase(pc),a1        ; get gfxbase in a1
  34.         move.l    SysCop1(a1),cop1lch(a5)    ; restore old system copper
  35.         move.w    dmasav,d0        ; get saved dma value
  36.         or.w    #$8000,d0
  37.         move.w    d0,dmacon(a5)        ; restore old dma
  38.         move.w    adksav,d0        ; get saved adkcon value
  39.         or.w    #$8000,d0
  40.         move.w    d0,adkcon(a5)        ; restore old adkcon
  41.         move.w    intsav,d0        ; get saved intena value
  42.         or.w    #$8000,d0
  43.         move.w    d0,intena(a5)        ; restore old interna
  44.         move.l    (AbsExecBase).w,a6    ; get execbase
  45.         jsr    Permit(a6)        ; permit multitasking
  46.         move.l    GFXbase(pc),a1        ; get gfxbase in a1
  47.         jsr    CloseLibrary(a6)    ; close gfx library
  48.         moveq.l    #0,d0            ; no cli return code
  49.         rts
  50.         
  51. changecop:    not.b    flag
  52.         bne.s    ccrts
  53.         lea    copcols(pc),a0
  54.         moveq    #33-2,d0        ; 100 lines
  55.         move.l    barptr,a1        ; start of list
  56.         move.l    a1,temptr        ; updates temporary pointer
  57.         moveq    #0,d1
  58. ccloop        move.b    (a1)+,7(a0)        ; update colour
  59.         lea    8(a0),a0
  60.          addq.b    #1,d1
  61.          cmp.b    #barlen,d1        ; end of sub-bar?
  62.          bne.s    ccdbra
  63.         move.l    temptr,a1
  64.         addq.l    #1,a1
  65.         cmp.l    #barend,temptr
  66.         bne.s    ccd2
  67.     
  68.         lea    bardata(pc),a1
  69. ccd2        move.l    a1,temptr
  70.         moveq    #0,d1
  71. ccdbra      dbra    d0,ccloop
  72.         addq.l    #1,barptr
  73.         move.l    barptr,d0
  74.         cmp.l    #barend,d0        ; have we got to the bottom
  75.         bne.s    ccrts            ; of the bar list. if so,
  76.         move.l    #bardata,barptr        ; reset to start of list    
  77. ccrts        rts                ; return to interrupt
  78.   
  79.  
  80. bardata:    dc.b    $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0D,$0E,$0E,$0F
  81.         dc.b    $0F,$0F,$0E,$0E,$0E,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05,$04,$03,$02,$01
  82.         ds.b 20
  83.         even
  84. barend        DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,14,15,15,15
  85.         DC.B 14,14,13,13,12,11,10,9,8,7,6,5,4,3,2,1
  86.         dc.b 255
  87.         even
  88. flag        dc.w    0
  89.  
  90. CopperList:    dc.w    diwstrt,$2C81
  91.         dc.w    diwstop,$2CC1
  92.         dc.w    ddfstrt,$0038
  93.         dc.w    ddfstop,$00D0
  94.         dc.w    bplcon0,$1200        ; (1 bitplane Lo-Res)
  95.         dc.w    bpl1mod,0        ; (no moduo)
  96.         dc.w    bpl2mod,0        ; (no moduo)
  97.         dc.w    color00,0        ; colour 0 (black)
  98.         dc.w    color01,$fff        ; colour 1 (white)
  99.         dc.w    spr0pth,0,spr0ptl,0,spr1pth,0,spr1ptl,0
  100.         dc.w    spr2pth,0,spr2ptl,0,spr3pth,0,spr3ptl,0
  101.         dc.w    spr4pth,0,spr4ptl,0,spr5pth,0,spr5ptl,0
  102.         dc.w    spr6pth,0,spr6ptl,0,spr7pth,0,spr7ptl,0
  103.         dc.w    bpl1pth
  104. pl1h:        dc.w     0
  105.         dc.w     bpl1ptl
  106. pl1l:        dc.w     0
  107.  
  108.  
  109. copcols    dc.w    $2C09,$FFFE,$0180,$0000
  110.     dc.w    $2D09,$FFFE,$0180,$0000
  111.     dc.w    $2E09,$FFFE,$0180,$0000
  112.     dc.w    $2F09,$FFFE,$0180,$0000
  113.     dc.w    $3009,$FFFE,$0180,$0000
  114.     dc.w    $3109,$FFFE,$0180,$0000
  115.     dc.w    $3209,$FFFE,$0180,$0000
  116.     dc.w    $3309,$FFFE,$0180,$0000
  117.     dc.w    $3409,$FFFE,$0180,$0000
  118.     dc.w    $3509,$FFFE,$0180,$0000
  119.  
  120.     dc.w    $3609,$FFFE,$0180,$0000
  121.     dc.w    $3709,$FFFE,$0180,$0000
  122.     dc.w    $3809,$FFFE,$0180,$0000
  123.     dc.w    $3909,$FFFE,$0180,$0000
  124.     dc.w    $3A09,$FFFE,$0180,$0000
  125.     dc.w    $3B09,$FFFE,$0180,$0000
  126.     dc.w    $3C09,$FFFE,$0180,$0000
  127.     dc.w    $3D09,$FFFE,$0180,$0000
  128.     dc.w    $3E09,$FFFE,$0180,$0000
  129.     dc.w    $3F09,$FFFE,$0180,$0000
  130.  
  131.     dc.w    $4009,$FFFE,$0180,$0000
  132.     dc.w    $4109,$FFFE,$0180,$0000
  133.     dc.w    $4209,$FFFE,$0180,$0000
  134.     dc.w    $4309,$FFFE,$0180,$0000
  135.     dc.w    $4409,$FFFE,$0180,$0000
  136.     dc.w    $4509,$FFFE,$0180,$0000
  137.     dc.w    $4609,$FFFE,$0180,$0000
  138.     dc.w    $4709,$FFFE,$0180,$0000
  139.     dc.w    $4809,$FFFE,$0180,$0000
  140.     dc.w    $4909,$FFFE,$0180,$0000
  141.  
  142.     dc.w    $4a09,$FFFE,$0180,$0000
  143.     dc.w    $4b09,$FFFE,$0180,$0000
  144.     dc.w    $4c09,$FFFE,$0180,$0000
  145.  
  146.  
  147.  
  148.         dc.w    $FFFF,$FFFE        ;end copper (impossible pos)
  149.  
  150. dmasav:        dc.w    0
  151. adksav:        dc.w    0
  152. intsav:        dc.w    0
  153. GFXlib:        dc.b    "graphics.library"
  154.         even
  155. GFXBase:    ds.l    2
  156.         even
  157. temptr:     dc.l    bardata            
  158.         even
  159. barptr:     dc.l    bardata
  160.         even
  161. Screen:        dcb.b    20480,0        ;reserve some memory for screen area
  162.  
  163. Level3Vector    equ $6c
  164. SysCop1        equ $26
  165. _ciaa:        equ $bfe001
  166. _ciab:        equ $bfd000
  167. left        equ 6
  168.  
  169. _custom:    equ $dff000
  170. bltddat:    equ $000
  171. dmaconr:    equ $002
  172. vposr:        equ $004
  173. vhposr:        equ $006
  174. dskdatr:    equ $008
  175. joy0dat:    equ $00a
  176. joy1dat:    equ $00c
  177. clxdat:        equ $00e
  178. adkconr:    equ $010
  179. pot0dat:    equ $012
  180. pot1dat:    equ $014
  181. potgor:        equ $016
  182. serdatr:    equ $018
  183. dskbytr:    equ $01a
  184. intenar:    equ $01c
  185. intreqr:    equ $01e
  186. dskpth:        equ $020
  187. dskptl:        equ $022
  188. dsklen:        equ $024
  189. dskdat:        equ $026
  190. refptr:        equ $028
  191. vposw:        equ $02a
  192. vhposw:        equ $02c
  193. copcon:        equ $02e
  194. serdat:        equ $030
  195. serper:        equ $032
  196. potgo:        equ $034
  197. joytest:    equ $036
  198. strequ:        equ $038
  199. strvbl:        equ $03a
  200. strhor:        equ $03c
  201. strlong:    equ $03e
  202. bltcon0:    equ $040
  203. bltcon1:    equ $042
  204. bltafwm:    equ $044
  205. bltalwm:    equ $046
  206. bltcpth:    equ $048
  207. bltcptl:    equ $04a
  208. bltbpth:    equ $04c
  209. bltbptl:    equ $04e
  210. bltapth:    equ $050
  211. bltaptl:    equ $052
  212. bltdpth:    equ $054
  213. bltdptl:    equ $056
  214. bltsize:    equ $058
  215. bltcmod:    equ $060
  216. bltbmod:    equ $062
  217. bltamod:    equ $064
  218. bltdmod:    equ $066
  219. bltcdat:    equ $070
  220. bltbdat:    equ $072
  221. bltadat:    equ $074
  222. dsksync:    equ $07e
  223. cop1lch:    equ $080
  224. cop1lcl:    equ $082
  225. cop2lch:    equ $084
  226. cop2lcl:    equ $086
  227. copjmp1:    equ $088
  228. copjmp2:    equ $08a
  229. copins:        equ $08c
  230. diwstrt:    equ $08e
  231. diwstop:    equ $090
  232. ddfstrt:    equ $092
  233. ddfstop:    equ $094
  234. dmacon:        equ $096
  235. clxcon:        equ $098
  236. intena:        equ $09a
  237. intreq:        equ $09c
  238. adkcon:        equ $09e
  239. aud0pth:    equ $0a0
  240. aud0ptl:    equ $0a2
  241. aud0len:    equ $0a4
  242. aud0per:    equ $0a6
  243. aud0vol:    equ $0a8
  244. aud0dat:    equ $0aa
  245. aud1pth:    equ $0b0
  246. aud1ptl:    equ $0b2
  247. aud1len:    equ $0b4
  248. aud1per:    equ $0b6
  249. aud1vol:    equ $0b8
  250. aud1dat:    equ $0ba
  251. aud2pth:    equ $0c0
  252. aud2ptl:    equ $0c2
  253. aud2len:    equ $0c4
  254. aud2per:    equ $0c6
  255. aud2vol:    equ $0c8
  256. aud2dat:    equ $0ca
  257. aud3pth:    equ $0d0
  258. aud3ptl:    equ $0d2
  259. aud3len:    equ $0d4
  260. aud3per:    equ $0d6
  261. aud3vol:    equ $0d8
  262. aud3dat:    equ $0da
  263. bpl1pth:    equ $0e0
  264. bpl1ptl:    equ $0e2
  265. bpl2pth:    equ $0e4
  266. bpl2ptl:    equ $0e6
  267. bpl3pth:    equ $0e8
  268. bpl3ptl:    equ $0ea
  269. bpl4pth:    equ $0ec
  270. bpl4ptl:    equ $0ee
  271. bpl5pth:    equ $0f0
  272. bpl5ptl:    equ $0f2
  273. bpl6pth:    equ $0f4
  274. bpl6ptl:    equ $0f6
  275. bplcon0:    equ $100
  276. bplcon1:    equ $102
  277. bplcon2:    equ $104
  278. bpl1mod:    equ $108
  279. bpl2mod:    equ $10a
  280. bpl1dat:    equ $110
  281. bpl2dat:    equ $112
  282. bpl3dat:    equ $114
  283. bpl4dat:    equ $116
  284. bpl5dat:    equ $118
  285. bpl6dat:    equ $11a
  286. spr0pth:    equ $120
  287. spr0ptl:    equ $122
  288. spr1pth:    equ $124
  289. spr1ptl:    equ $126
  290. spr2pth:    equ $128
  291. spr2ptl:    equ $12a
  292. spr3pth:    equ $12c
  293. spr3ptl:    equ $12e
  294. spr4pth:    equ $130
  295. spr4ptl:    equ $132
  296. spr5pth:    equ $134
  297. spr5ptl:    equ $136
  298. spr6pth:    equ $138
  299. spr6ptl:    equ $13a
  300. spr7pth:    equ $13c
  301. spr7ptl:    equ $13e
  302. spr0pos:    equ $140
  303. spr0ctl:    equ $142
  304. spr0data:    equ $144
  305. spr0datb:    equ $146
  306. spr1pos:    equ $148
  307. spr1ctl:    equ $14a
  308. spr1data:    equ $14c
  309. spr1datb:    equ $14e
  310. spr2pos:    equ $150
  311. spr2ctl:    equ $152
  312. spr2data:    equ $154
  313. spr2datb:    equ $156
  314. spr3pos:    equ $158
  315. spr3ctl:    equ $15a
  316. spr3data:    equ $15c
  317. spr3datb:    equ $15e
  318. spr4pos:    equ $160
  319. spr4ctl:    equ $162
  320. spr4data:    equ $164
  321. spr4datb:    equ $166
  322. spr5pos:    equ $168
  323. spr5ctl:    equ $16a
  324. spr5data:    equ $16c
  325. spr5datb:    equ $16e
  326. spr6pos:    equ $170
  327. spr6ctl:    equ $172
  328. spr6data:    equ $174
  329. spr6datb:    equ $176
  330. spr7pos:    equ $178
  331. spr7ctl:    equ $17a
  332. spr7data:    equ $17c
  333. spr7datb:    equ $17e
  334. color00:    equ $180
  335. color01:    equ $182
  336. color02:    equ $184
  337. color03:    equ $186
  338. color04:    equ $188
  339. color05:    equ $18a
  340. color06:    equ $18c
  341. color07:    equ $18e
  342. color08:    equ $190
  343. color09:    equ $192
  344. color10:    equ $194
  345. color11:    equ $196
  346. color12:    equ $198
  347. color13:    equ $19a
  348. color14:    equ $19c
  349. color15:    equ $19e
  350. color16:    equ $1a0
  351. color17:    equ $1a2
  352. color18:    equ $1a4
  353. color19:    equ $1a6
  354. color20:    equ $1a8
  355. color21:    equ $1aa
  356. color22:    equ $1ac
  357. color23:    equ $1ae
  358. color24:    equ $1b0
  359. color25:    equ $1b2
  360. color26:    equ $1b4
  361. color27:    equ $1b6
  362. color28:    equ $1b8
  363. color29:    equ $1ba
  364. color30:    equ $1bc
  365. color31:    equ $1be
  366. open:        equ -30
  367. close:        equ -36
  368. read:        equ -42
  369. write:        equ -48
  370. input:        equ -54
  371. output:        equ -60
  372. seek:        equ -66
  373. deletefile:    equ -72
  374. rename:        equ -78
  375. lock:        equ -84
  376. unlock:        equ -90
  377. duplock:    equ -96
  378. examine:    equ -102
  379. exnext:        equ -108
  380. info:        equ -114
  381. createdir:    equ -120
  382. currentdir:    equ -126
  383. ioErr:        equ -132
  384. CreateProc:    equ -138
  385. exit:        equ -144
  386. loadseg:    equ -150
  387. unloadseg:    equ -156
  388. getpacket:    equ -162
  389. queupacket:    equ -168
  390. deviceproc:    equ -174
  391. setcomment:    equ -180
  392. setprotection:    equ -186
  393. datestamp:    equ -192
  394. delay:        equ -198
  395. waitforchar:    equ -204
  396. parentdir:    equ -210
  397. IsInteractive:    equ -216
  398. Execute:    equ -222
  399.  
  400. AbsExecBase:    equ 4
  401. forbid        equ -132
  402. permit        equ -138
  403. allocmem:    equ -198
  404. freemem:    equ -210
  405. getmsg:        equ -372
  406. replymsg:    equ -378
  407. waitport:    equ -384
  408. closelibrary:    equ -414
  409. opendevice:    equ -444
  410. closedevice:    equ -450
  411. doio:        equ -456
  412. oldopenlibrary    equ -408
  413. openlibrary:    equ -552
  414.  
  415.